home *** CD-ROM | disk | FTP | other *** search
- unit LotteryU;
-
- interface
-
- uses
- WinProcs, WinTypes, Messages, SysUtils, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, ExtCtrls;
-
- type
- TfrmLottery = class(TForm)
- lblNo1: TLabel;
- lblNo2: TLabel;
- lblNo3: TLabel;
- lblNo4: TLabel;
- lblNo5: TLabel;
- lblNo6: TLabel;
- procedure FormCreate(Sender: TObject);
- procedure FormDestroy(Sender: TObject);
- procedure GenericClick(Sender: TObject);
- private
- List: TList;
- end;
-
- var
- frmLottery: TfrmLottery;
-
- implementation
-
- {$R *.DFM}
-
- {$ifndef Win32}
- procedure Sleep(MSec: Integer);
- var
- OldTime: TDateTime;
- begin
- OldTime := Now;
- repeat until Now >= OldTime + MSec / MSecsPerDay
- end;
- {$endif}
-
- procedure TfrmLottery.FormCreate(Sender: TObject);
- begin
- { Initialise random number generator }
- Randomize;
- { Create number list }
- List := TList.Create
- end;
-
- procedure TfrmLottery.FormDestroy(Sender: TObject);
- begin
- { Dispose of number list }
- List.Free;
- List := nil
- end;
-
- procedure TfrmLottery.GenericClick(Sender: TObject);
- var
- Loop, Index: Integer;
- const
- MaxNum = 49;
- begin
- { Empty the list }
- List.Clear;
- { Fill the list with 49 numbers }
- for Loop := 1 to MaxNum do
- List.Add(Pointer(Loop));
- { Loop for each number sought }
- for Loop := 1 to 6 do
- begin
- { Choose one of the remaining numbers in the list }
- Index := Random(List.Count);
- { Write it in the appropriate label }
- (FindComponent('lblNo' + IntToStr(Loop)) as TLabel).Caption :=
- IntToStr(Longint(List[Index]));
- { Remove the number from the list, so it won't be picked again }
- List.Delete(Index);
- end
- end;
-
- end.
-